/**
 * @file friendlabel.h
 * @brief 一个自定义的框架控件
 * @author zhaobohan (zhaobohan_free@163.com)
 * @version 0.1
 * @date 2024-08-13
 */

#ifndef FRIENDLABEL_H
#define FRIENDLABEL_H

#include <QFrame>
#include <QString>

namespace Ui {
class FriendLabel;
}

// 定义FriendLabel类，继承自QFrame，用于自定义的框架控件。
class FriendLabel : public QFrame
{
    Q_OBJECT // 宏定义，启用Qt的元对象系统，允许使用信号和槽机制。

public:
    // FriendLabel的构造函数，接受一个QWidget类型的父窗口指针。
    explicit FriendLabel(QWidget *parent = nullptr);
    // FriendLabel的析构函数，用于清理资源。
    ~FriendLabel();

    // 公共成员函数，用于设置控件的文本。
    void SetText(QString text);
    // 公共成员函数，返回控件的宽度。
    int Width();
    // 公共成员函数，返回控件的高度。
    int Height();
    // 公共成员函数，返回控件的文本。
    QString Text();

private:
    // Ui::FriendLabel的私有成员变量，通常由UI设计器生成的类实例。
    Ui::FriendLabel *ui;
    // 私有成员变量，用于存储文本内容。
    QString _text;
    // 私有成员变量，用于存储控件的宽度。
    int _width;
    // 私有成员变量，用于存储控件的高度。
    int _height;

public slots:
    // 公共槽函数，通常用于响应信号，例如关闭操作。
    void slot_close();

signals:
    // 信号，用于通知其他对象控件关闭事件，并传递文本信息。
    void sig_close(QString);
};


#endif // FRIENDLABEL_H
